package com.ruoyi.factorydata.domain.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.factorydata.domain.CraftProcessMaterialRelation;
import com.ruoyi.factorydata.domain.CraftProcessRelation;
import com.ruoyi.factorydata.domain.CraftProcessStationRelation;
import com.ruoyi.factorydata.domain.dto.ProcessDataDTO;
import lombok.Builder;
import lombok.Data;

import java.util.Date;
import java.util.List;

@Builder
@Data
public class CraftRouteVo extends BaseEntity {

    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 关联产品ID
     */
    @Excel(name = "关联产品ID")
    private Long productId;

    private String productName;

    /**
     * 产品分类id
     */
    @Excel(name = "产品分类id")
    private Long productCategoryId;

    /**
     * 产品分类名称
     */
    @Excel(name = "产品分类名称")
    private String productCategoryName;
    /**
     * 路线编码
     */
    @Excel(name = "路线编码")
    private String routeCode;

    /**
     * 路线名称
     */
    @Excel(name = "路线名称")
    private String routeName;

    /**
     * 单序加工标识(1是 0否)
     */
    @Excel(name = "单序加工标识(1是 0否)")
    private String isExclusive;

    /**
     * 状态（0正常 1停用）
     */
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /**
     * 工艺附件
     */
    @Excel(name = "工艺附件")
    private String craftAttachments;

    private String craftTag ;

    /**
     * 工序参数
     */
    private List<ProcessDataDTO.Parameter> technicalParameterList;

    /** 创建者 */
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新者 */
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 备注 */
    private String remark;

//    /**
//     * 工序工位关系
//     */
//    private List<CraftProcessStationRelation> craftProcessStationRelations;

    /**
     * 工序关系
     */
    private List<CraftProcessRelationVo> craftProcessRelations;

//    /**
//     * 工序物料关系
//     */
//    private List<CraftProcessMaterialRelation> craftProcessMaterialRelations;
}
